package com.qf.arr;

public class Demo03 {
    public static void main(String[] args) {
        /**
         * 1.定义方法，计算从1到某个数以内所有奇数的和。
         */
//        System.out.println(oddSum(8));

        /**
         * 2.定义方法，计算从1到某个数以内所有能被3或者17整除的数的和。
         */
//        System.out.println(getSum(17));

        /**
         * 3.定义方法，三个参数，分别是长，宽，高，计算并输出立方体的表面积 。
         */
//        System.out.println(calcSurfaceArea(1, 2, 3));

        /**
         * 4.验证哥德巴赫猜想：任何一个大于6的偶数，都能分解成两个质数的和，要求输入一个整数，输出这个数被被分解成哪两个质数的和。
         * 如：14
         * 14 = 3 + 11
         * 14 = 7 + 7
         */

        geDeGuess(28);

    }

    /**
     * 计算从1到某个数以内所有奇数的和
     *
     * @param num
     */
    public static int oddSum(int num) {
        int sum = 0;
        for (int i = 1; i <= num; i += 2) {
            sum += i;
        }
        return sum;
    }

    /**
     * 计算从1到某个数以内所有能被3或者17整除的数的和。
     *
     * @param num
     * @return
     */
    public static int getSum(int num) {
        int sum = 0;
        for (int i = 1; i <= num; i++) {
            if (i % 3 == 0 || i % 17 == 0) {
                sum += i;
            }
        }
        return sum;
    }

    /**
     * 三个参数，分别是长，宽，高，计算并输出立方体的表面积 。
     */
    public static float calcSurfaceArea(float a, float b, float c) {
        return 2 * (a * b + a * c + b * c);
    }

    /**
     * 判断是不是质数
     *
     * @param num
     * @return 是质数返回true 不是返回false
     */
    public static boolean isPrime(int num) {
        boolean flag = true;
        for (int i = 2; i < num; i++) {
            if (num % i == 0) flag = false;
        }
        return flag;
    }

    /**
     * 验证哥德巴赫猜想：任何一个大于6的偶数，都能分解成两个质数的和，要求输入一个整数，输出这个数被被分解成哪两个质数的和。
     * 如：14
     * 14 = 3 + 11
     * 14 = 7 + 7
     */

    public static void geDeGuess(int even) {
        for (int i = 2; i < even - 1; i++) {
            if (isPrime(i) == true && isPrime(even - i) == true) {
                if (i > even - i) return;
                System.out.println(even + " = " + i + " + " + (even - i));
            }
        }
    }

}
